草庐IT

MySQL 慢查询及SQL执行时间监控

全部标签

sql - 通过关联的 Rails 查询仅限于最近的记录?

classUserhas_many:books我需要一个返回的查询:最近一本书具有:complete=>true的用户。即,如果用户最近的书有:complete=>false,我不希望它们出现在我的结果中。到目前为止我有什么User.joins(:books).merge(Book.where(:complete=>true))这是一个很有希望的开始,但没有给我需要的结果。我试过添加.order("created_ondesc").limit(1)到上述查询的末尾,但是当我期待很多结果时,我最终只得到一个结果。谢谢! 最佳答案 如果

ruby-on-rails - Rails ActiveRecord 查询日期范围

我正在尝试在我的Controller中使用以下行来捕获从当前日期起不到一周的所有任务:@due_this_week=current_user.tasks.where(due_date:Date.today..1.week.from_now)出于某种原因,它没有找到任何结果,即使我知道我有四到六天的任务到期。这是唯一使用范围查询的实例变量。我有另一个可以很好地查找逾期任务的工具:@overdue=current_user.tasks.where("due_date我错过了什么? 最佳答案 应该是:@due_this_week=curr

ruby-on-rails - Rails ActiveSupport 时间解析?

Rails'ActiveSupportmoduleextendsthebuiltinrubyTimeclasswithanumberofmethods.值得注意的是,有一个to_formatted_s方法,它让您可以编写Time.now.to_formatted_s(:db)来获取数据库格式的字符串,而不必到处写丑陋的strftime格式字符串。我的问题是,有没有办法倒退?类似于Time.parse_formatted_s(:db)的东西,它会解析数据库格式的字符串,返回一个新的Time对象。这似乎是Rails应该提供的东西,但如果是的话,我找不到它。是我找不到,还是需要自己写?谢谢

ruby - 如何使用 Ruby 测试/单元执行单个测试?

有什么方法可以在ruby​​测试/单元框架下执行单个测试,而不是自动运行所有测试用例。我知道我可以通过使用Rake来实现这一点,但我现在还没有准备好切换到rake。rubyunit_test.rb#thiswillrunallthetestcaserubyunit_test.rbtest1#thiswillonlyruntest1 最佳答案 您可以在命令行上传递-n选项来运行单个测试:rubymy_test.rb-ntest_my_method其中“test_my_method”是您要运行的测试方法的名称。

ruby - 使用月、日和年在 Rails 中创建日期时间

我有params[:month,:day,:year],我需要将它们转换成一个DateTime,我可以把它放在一个隐藏的输入中。在Rails3中执行此操作的最佳方法是什么? 最佳答案 你可以做到DateTime.new(params[:year],params[:month],params[:day]) 关于ruby-使用月、日和年在Rails中创建日期时间,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

ruby-on-rails - 将日期时间转换为月、日和年?

我好像找不到这个,我觉得应该很容易。在RubyonRails中,我如何采取:2010-06-1419:01:00UTC把它变成June14th,2010我不能只在View中使用助手吗? 最佳答案 我不知道June14th,2010但如果你想June14,2010引用howdoigetnameofthemonthinrubyonRails?或this就这样@date=Time.now@date.strftime("%B%d,%Y")后缀用在后面@date.strftime("%B#{@date.day.ordinalize},%Y")

ruby - 在 Ruby 中,您可以对从文件中读取的数据执行字符串插值吗?

在Ruby中,您可以在字符串中引用变量,并在运行时对它们进行插值。例如,如果您声明一个变量foo等于"Ted"并声明一个字符串"Hello,#{foo}"它插入到"Hello,Ted"。我一直无法弄清楚如何对从文件读取的数据执行神奇的"#{}"插值。在伪代码中它可能看起来像这样:interpolated_string=File.new('myfile.txt').read.interpolate但是最后一个interpolate方法不存在。 最佳答案 我认为这可能是在Ruby1.9.x中执行您想要的操作的最简单和最安全的方法(spr

ruby-on-rails - Rails 应用程序:Solr 抛出 RSolr::Error::Http - 执行搜索时未找到 404

非常迷茫,因为我没有对我的搜索进行任何更改,该搜索一直有效,但不知何故我休息了。作为Rails的新手,错误输出没有给我足够的细节来进行调试。下面的相关代码-询问您是否还想查看其他内容。home.html.slim(带有搜索表单的摘录)=form_tagsearch_venues_path,method::get,id:'search'do|f|.search-fields.span16p=text_field_tag:q,'',placeholder:"Searchforcoffee,hotel,etc",class:'span7search-field'p=text_field_ta

ruby-on-rails - 在两个日期时间之间迭代,步长为一小时

我正在寻找一种有效的方法,在Ruby1.9.x/Rails3.2.x中,以一个小时的步长在两个DateTime对象之间进行迭代。('2013-01-01'.to_datetime..'2013-02-01'.to_datetime).step(1.hour)do|date|...end我知道这个问题是1.hour只是秒数,但我尝试将其转换为DateTime对象并将其用作步骤也不起作用.我查看了“BewareofRubySugar”。它在底部附近提到DateTime有一个直接的step方法。我通过在DateTime对象上运行methods来确认这一点,但是我在DateTime中找不到任何

ruby-on-rails - 安装 mysql2 (0.3.11) 时出错

我是一个Rails初学者,我从https://github.com/rubytaiwan/jobs.ruby.tw得到了一个演示。但是当我尝试运行这个演示时,我得到了一个错误。我跟着跑bundle我得到了错误Anerroroccurredwhileinstallingmysql2(0.3.11),andBundlercannotcontinue.Makesurethat`geminstallmysql2-v'0.3.11'`succeedsbeforebundling.但我可以确定我已经安装了mysql2Gemfile是source'https://rubygems.org'ruby"